import java.util.*;

/**
 * @author LKQ
 * @date 2022/4/14 16:56
 * @description (a&b)^(a&c) = a&(b^c)
 */
public class Solution {
    public static void main(String[] args) {
        Solution solution = new Solution();
        int[] arr1 = {12}, arr2 = {4};
        solution.getXORSum(arr1, arr2);
    }
    public int getXORSum(int[] arr1, int[] arr2) {
        int m = arr1.length;
        int n = arr2.length;
        int ans = 0;
        // 依次确定答案二进制表示中的每一位
        for (int k = 30; k >= 0; --k) {
            int cnt1 = 0;
            for (int num: arr1) {
                if ((num & (1 << k)) == (1 << k)) {
                    ++cnt1;
                }
            }
            int cnt2 = 0;
            for (int num: arr2) {
                if ((num & (1 << k)) == (1 << k)) {
                    ++cnt2;
                }
            }
            // 如果 cnt1 和 cnt2 都是奇数，那么答案的第 k 位为 1
            if (cnt1 % 2 == 1 && cnt2 % 2 == 1) {
                ans |= (1 << k);
            }
        }
        return ans;
    }
}
